alfred workflow的基本创建流程
之前有写过一个利用alfred workflow来上传图片到图床,并返回markdown地址
由于之前返回结果就直接存在于剪贴板中,并不需要展示出来供用户来查看,选择,因此不涉及返回结果给alfred并展示的过程
因此,这次做了一个workflow的展示版本
base64编码的workflow
由于平时偶尔会使用base64来编码一个字符串或者解码,因此简单创建一个workflow来达到该目的
创建空白workflow,设置关键字触发
- 具体操作和之前的一样
必填
- bundle id是必填的,格式也就是域名反过来,这点和java中的类名有点类似
- 可以选择一个图片到该workflow里面
创建一个script fliter
这里还是使用python来作为脚本
使用bash来传参,调用该脚本
keyword
关键字,利用关键字触发language
代表下面的script语法,这里选择input的参数,一般选择下一个- 脚本内容就只是一个将用户的输入作为参数,传入执行的脚本中
创建执行脚本
在workflow所在的目录,创建执行脚本
执行脚本的名字必须和上面调用的执行脚本文件名字一样
例如上面是python *base64encode.py* "{query}"
,这里加粗的就是要创建的执行脚本名称
- 这里是我写的这个workflow的执行脚本内容
1 | #!/usr/bin/env python |
注意点
- 需要注意的地方是,alfred接收的展示结果必须是json或者是xml,上面的output内容就是一个json格式的字符串
- 关键参数,
title
是必填的,它代表alfred要展示的结果(下拉菜单里面的具体内容) - 还有一个
subtitle
,可以作为title
的补充,如果需要的话,可以在items这个数中加入这个参数,字体会比title
小 arg
参数,代表了要传给临近的一个filter的结果,由于我这边希望转码了以后,用户回车选择后,传入剪贴板,因此需要这个参数valid
代表了用户敲入回车后返回,虽然文档里面写的这个值默认是True,但是经过测试发现,如果不加这个参数,回车不起作用,只能是command + 具体数字
加入返回结果到剪贴板的动作
可以直接拖动script filter右边缘的节点,像思维导图的下一个节点一样,拖动到空白地方,然后选择一个动作
- 这里的
{query}
就代表了,上一个动作传给该动作的参数,也就是arg
里面的东西